/**
 * @file
 * @author  Tsin Smith <tsin.creator@gmail.com>
 *
 * @section DESCRIPTION
 *
 */

#ifndef __TSIN_LIBRARY_SCDLINTERPRETER_HPP__
#define __TSIN_LIBRARY_SCDLINTERPRETER_HPP__

#include <tsin/library/common.hpp>
#include <tsin/library/TouhouSpellBasic.hpp>

namespace scdl {
        class StringMap;
        class Symbol;
}

namespace tsin {

        class LIBRARY_DLLEXPORT SCDLInterpreter : public TouhouSpellBasic {
        public:
                static SCDLInterpreter *openSCDL(const char *file);

                virtual ~SCDLInterpreter();

                virtual int getEvents(GameEvent **events);

        private:
                SCDLInterpreter(scdl::StringMap *symbols);

                scdl::StringMap &symbols;
                scdl::Symbol *getDef(const char *name);
        };

}

#endif /* __TSIN_LIBRARY_SCDLINTERPRETER_HPP__ */
